package com.example.myskyjava.controller;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class Exl {
    String PATH = "E:/myGitee/mySky/sky/mySky-java";
//    03版本 生成的xls
    public void exlTest03() throws IOException {
//    创建一个工作薄
        Workbook workbook = new HSSFWorkbook();
//    创建一个工作表 “我是一个工作狂”是名字
        Sheet sheet = workbook.createSheet("我是一个工作狂");
//    创建一个行
        Row row1 = sheet.createRow(0);
//    创建一个单元格
        Cell cell1 = row1.createCell(0);
        cell1.setCellValue("测试写入");

        Cell cell2 = row1.createCell(1);
        cell2.setCellValue("测试写入1");

//        生成文件xls
        FileOutputStream fileOutputStream = new FileOutputStream(PATH+"我去尼玛03.xls");
        workbook.write(fileOutputStream);
        workbook.close();
        System.out.println("文件生成完毕");

    }

    //    07版本 生成的xls
    public void exlTest07() throws IOException {
//    创建一个工作薄
        Workbook workbook = new XSSFWorkbook();
//    创建一个工作表 “我是一个工作狂”是名字
        Sheet sheet = workbook.createSheet("我是一个工作狂");
//    创建一个行
        Row row1 = sheet.createRow(0);
//    创建一个单元格
        Cell cell1 = row1.createCell(0);
        cell1.setCellValue("测试写入");

        Cell cell2 = row1.createCell(1);
        cell2.setCellValue("测试写入1");

//        生成文件 xlsx
        FileOutputStream fileOutputStream = new FileOutputStream(PATH+"我去尼玛07.xlsx");
        workbook.write(fileOutputStream);
        workbook.close();
        System.out.println("文件生成完毕");

    }

    //    07版本大数据写入 生成的xls
    public void exlTest07s() throws IOException {
//    创建一个工作薄
        Workbook workbook = new SXSSFWorkbook();
//    创建一个工作表 “我是一个工作狂”是名字
        Sheet sheet = workbook.createSheet("我是一个工作狂");
        for (int i = 0; i<100000; i++){
            //    创建一个行
            Row row = sheet.createRow(i);
            //    循环单元格
            for (int k =0; k<10; k++){
                Cell cell = row.createCell(k);
                cell.setCellValue("测试写入"+k);
            }
        }

//        生成文件 xlsx
        FileOutputStream fileOutputStream = new FileOutputStream(PATH+"我去尼玛07S.xlsx");
        workbook.write(fileOutputStream);
        workbook.close();
//        清除临时文件  因为这样创建会产生临时文件
        ((SXSSFWorkbook) workbook).dispose();
        System.out.println("文件生成完毕");

    }


}

